DEPARTMENT:
|
|
Computer
Science
|
SUBJECT CODE/ COURSE TITLE: |
|
CS 604 (Computer Systems and Concepts) |
CLASS HOURS: |
|
4 Class Hours per Week |
CREDITS: |
|
4 |
PREREQUISTES: |
|
|
|
|
|
TEXTBOOKS: |
|
M. Mano, Computer
System Architecture, 3rd edition, Prentice Hall, 1993. Silberchatz, G. Gayne, & P. Galvin, Operating System Concepts, 8th
edition, John Wiley & Sons, 2009. |
REFERENCES: |
|
Internet Computer Magazines and Journals |
SEMESTER: |
|
Spring 2010 |
PREPARED BY: |
|
Dr. A. Joseph |
Course
Description: This course provides an integrated survey of
fundamental ideas in the areas of computer architecture, operating system, and
programming language specification and translation.
Professor:
|
|
Dr. A. Joseph
|
Office:
|
|
|
Telephone: |
|
212 346 1492 |
Email: |
|
|
Office Hours: |
|
Thursday:
|
Final examination:
|
|
45%
|
In-class examinations (6 -- 20 minutes exams): |
|
35% [best 5
of 6] |
Homework: |
|
|
In-class student participation and contribution: |
|
4% |
Project and project presentation: |
|
16% (4% for presentation) |
|
|
|
Extra credit option: Note: All students who want to improve their grade
to a sufficiently high level. This assignment may be a project. It is not
intended to be a substitute for any regular class assignment. |
|
10% (Due by week 12 and no later) |
Above 92%
|
|
A
|
90% -- 92% |
|
A- |
85% -- 89% |
|
B+ |
80% -- 84% |
|
B |
75% -- 79% |
|
B- |
65% --74% |
|
C |
Below 65% |
|
F |
|
|
|
Note: Grades are computed to the nearest whole number. |
Learning Objectives and Outcomes
A student in this Computer Systems and Concepts course
will achieve the following objectives and corresponding outcomes:
Objective #1
Students will acquire sound knowledge in the key
principles and practices used in the design and analysis of a digital computer
system.
Outcomes #1
1a. Demonstrate an understanding of the basic building
blocks of the functional units of a digital computer system.
1b. Use truth tables and algebraic expressions to describe
the functions of simple combinational circuits, design circuits from these
descriptions, design basic sequential circuits from truth tables, and analyze
related combinational and sequential circuits,
1c. Demonstrate the ability to explain and able to discuss
the relative utility of signed-magnitude and two’s complement representation of
negative integers from the point-of-view of a digital computing device.
1d. Explain the steps involve in the design of a basic
digital computer system.
Objective #2
Students will understand the differences among the
main types programming languages relative to their effect on a digital computer
processing speed; relationships between the types of programming languages from
a user perspective; and tradeoffs between hardware and software in digital
systems design and implementation; as well as develop the analytical skills
needed troubleshoot assembly language programs.
Outcomes #2
2a. Demonstrate through descriptions, discussions, and/or
illustrations an understanding of the purpose of an assembly language, its
programming objectives, and its relationship to machine language and high-level
languages.
2b. Understand and be able to explain the concepts of
assembly language directives, operators, macros, and program structure
2c. Demonstrate the ability to analyze assembly language
programs and to translate simple high-level language programs into
corresponding assembly language programs.
2d. Discuss the issues involved in hardware or software
implementation of an instruction in a digital computer instruction set.
2e. Understand and be able to distinguish between logical
and physical memory addresses and data storage.
2f. Demonstrate the ability to discuss, with appropriate
illustrations, the concepts of subroutine calls and interrupts at the assembly
language level.
Objective #3
Students will have a thorough knowledge of the central
processing unit its relation to other the functional units – memory and
input/output -- of the Von Neumann model of a digital system.
Outcomes #3
3a. Demonstrate an understanding of a digital computer bus
system and its role in the transfer of information between the functional
units.
3b. Demonstrate a clear understanding of stack
organization and Reverse Polish notation and their combined use in effecting
the computational efficiency of a digital computer system.
3c. Show the ability to explain the different addressing
schemes and able to solve problems involving them.-
3d. Able to illustratively describe the concept of program
control and the design of the general instruction set for a digital computer
system.
Objective #4
Understand and describe the concepts of structuring
methods; interrupts’ methods and implementation; application programming
interface (API); services provided to users and the system; and installation,
customization, and booting.
Outcomes #4
4a. Demonstrate ability to compare and contrast the many
possible methods (e.g., simple, layered, modular, and microkernel) of
structuring the operating system.
4b. Show sound knowledge of the difference between asynchronous
and synchronous interrupts and of the relative advantages of interrupts over
polling.
4c. Show concrete knowledge by describing the procedures
involve in installing, customizing, booting an operating system.
4d. Able to discuss the system call concept and able to
differentiate between the needs for the system call interface and the
application program interface.
4e. Show how system programs manage the resources used by
applications.
4f. Demonstrate the ability to illustratively explain why
the services provided to users constitute a different set of functions than
that provided to the system.
4g. Demonstrate intimate knowledge of the issues of design
and implementation as well as the desired user and system properties.
4h. Demonstrate the ability to discuss the tradeoffs
inherent in operating system design and able to identify potential threats and
their safeguards in designed systems.
Objective #5
Understand and explain the process concept and the
related idea of thread as well as their respective concurrency.
Outcomes #5
5a. Able to explain process state and process control
block using appropriate examples to highlight their components.
5b. Able to illustratively describe the creation and
termination, scheduling, and interprocess communication features of a process.
5c. Show the ability to compare and contrast the various
types of multithreading models.
5d. Demonstrate a deep understanding of some of the issues
encountered with multithreaded programs (e.g., fork () and exec () system
calls, cancellation, signal handling, thread pools, thread specific data, and
scheduler activations).
5e. Able to describe possible run-time problems arising
from the concurrent operation of many separate tasks.
5f. Demonstrate the ability to explain how software and
hardware are individually used to solve mutual exclusion problem.
5g. Able to discuss the evaluation criteria for selecting
a particular system’s CPU scheduling algorithm and the various available
criteria comparing CPU scheduling algorithms.
Objective #6
Students will understand and able to apply the central
theory of languages, computation, and finite state machine that underlies
modern computing.
Outcome #6
6a. Able to differentiate between an alphabet, string, and
a language
6b. Demonstrate intimate knowledge of the attributes (e.g.,
cardinality, number per alphabet, semantics) of a language
6c. Show the ability to determine whether a string is in a
language and to cast problems as decision questions
6d. Understand the machine hierarchy and the language and
computational hierarchies that goes with it
6e. Demonstrate clear knowledge of the concept of
computation in terms of decision procedures, non-determinism, and functions on
languages
6f. Understand the concepts of and able to design a finite
state machine.
Objective #7
Develop team-building, social, and organizational
skills that they can further develop in other classes and in their professional
careers.
Outcomes #7
7a. Demonstrate an ability to work effectively in teams.
7b. Demonstrate the ability for effective oral and written
communication.
Tentative
Examination Schedule:
Course Section |
In-class Examinations |
Project Draft Submission |
Project Presentation & Submission |
Final Exam |
CS 604 ( |
2/3, 2/17, 3/3, 3/17, 4/7, 4/21 |
|
|
|
Note 1: In general, the
lessons will highlight inquiry-based lecture-discussion and may include
storytelling. The central focus of the course will be critical thinking and
problem-solving. To get the most out of the course, each student is expected to
study the reading assignments and genuinely attempt each homework problem
before coming to class. The idea is to come to class ready with questions about
and ideas relating to the course materials and associated problems.
Note 3: In the interest
of learning, it is very important to
come to class prepared to learn – do all required assignments. Failure to do so
could diminish your ability to get the most out of each lesson and the class.
Remember that learning is action oriented. That is, it is not enough to come to class to listen to what others have to say. You
should come to class prepared to become involve in all aspects of classroom activities because learning is an active process.
.
Note 3: It is very
important you read and familiarize yourself with CSIS Statement of Student Responsibilities (see attachment).
TOPICS COVERED
Weeks |
Topics
|
Homework Assignments
|
|
|
|
1-2 |
Review: Digital logic circuits (logic gates, Boolean
algebra, combinational circuits, and flip-flops); Digital components (decoders, multiplexers,
registers, counters tri-state switches, buses, and memory units); and Data
representation (data types, 2’s complement, fixed-point, and floating-point). |
Read: Chap. 1. Prob.: 1, 3-6, 7, 11, 14, 15, and 17. Read: Chap 2. Prob.: 3, 4, 8, 12, 16, and 19-23. Read: Chap. 3. Prob.: 1-5, 7-10, 13, 16-17, 20, and 23. |
|
|
|
3 |
Register transfer and microoperations: Register
transfer (language, and bus and memory); microoperations (shift, logic, and
arithmetic); and arithmetic logic shift unit (ALU). |
Read: Chap. 4. Prob.: 1-4, 6-9, 11, 18, 19, 21 and 23. |
|
|
|
4 |
Basic computer organization and design: Instruction
codes; timing and control; instruction cycle; computer instructions; computer
registers; instruction cycle; memory reference instructions; input/output and
interrupt; and design of accumulator logic and basic computer. |
Read: Chap. 5. Prob.:1-7, 9-10, 12, and 15-18 |
|
|
|
5 |
Programming the basic computer: Machine
language; assembly language; assembler; program loops, subroutines, and
programming arithmetic and logic operations. |
Read: Chap. 6. Prob. 1-7, 11-14, and 18 |
|
|
|
6-7 |
Central processing unit (CPU): Register and
stack organization; instruction formats; addressing modes; data transfer and
manipulation; program control. |
Read Chap.: 8. Prob.: 6-9, 11, and 13-16. |
|
|
|
7-8 |
Operating system structure: Operating
system services, structure, design and implementation, generation; user
interface; system calls and types; system programs; virtual machines; and
system boot. |
Read chapter 2 Do problems 2.2; 2.5; 2.11 - 2.13. |
|
|
|
8-9 |
Processes: Process
concept and scheduling; operations on processes; inter-process communication;
examples of IPC systems; and communication in client server systems. |
Read chapter 3 Do problems 3.1; 3.2; 3.5. |
|
|
|
9-10 |
Threads:
Multithreading models; thread libraries; threading issues; and operating
system examples. |
Read chapter 4 Do problems 4.3; 4.4; 4.6; 4.8. |
|
|
|
10-11 |
CPU scheduling: Scheduling and algorithms; multiprocessor
and thread scheduling; algorithm evaluation; operating system examples |
Read chapter 5 Do problems 5.2; 5.5; 5.11; 5.12. |
|
|
|
12 |
Project presentation and submission: projects
presented to class and submitted. |
|
|
|
|
12-13 |
Languages and strings, language
hierarchy, computation, and finite state machines: Strings;
languages; language recognition; power of encoding machine-based hierarchy of
language classes; tractability of language classes; decision procedures;
determinism and non-determinism; functions on languages and programs;
deterministic finite state machines; regular languages; and designing
deterministic finite state machine. |
|
|
|
|
14 |
Final examination |
|
|
|
|
|
||
Note 1: This course
is structured around freely formed small collaborative teams in a cooperative
learning environment. Students are encouraged to work together in their
respective teams to form effective and productive teams that share the
learning experience within the context of the course, help each other
overcome learning difficulties, spend time to get to know each other, and
spend time each week to discuss and help one another with the course work
(content and assignments). Each team member is responsible for the completion
and submission of each assignment. Each team member will be individually
graded. |
||
|
||
Note 2: During the
first class session, student background information may be collected to get a
sense of the diversity of student population, educational background, and
learning style. An assessment test may be given to determine students’
prerequisite knowledge of the subject. |
||
|
||
Team project: Students in
small teams of two to four persons will participate in a research project
supported by a technical report. The research topic will be on an emerging
area of interest to an organization or the research community. In this
project, teams will conduct research to assist in the determination of the
solution to the research problem. They will demonstrate their knowledge and
understanding of how research is conducted and the significance of the
problem solution. The project grade to individual students within a team will
be based upon their personal involvement and level of participation in the
project as determined by their teammates and the professor. |
||
|
||
Web support: This course
may be supported with most or all of the following Blackboard postings:
lesson questions, lessons (MS PowerPoint), instructions and guidelines
pertaining to the course, operating system and architecture related news,
team and class discussions boards, correspondence about the course, homework
solutions, examination grades, and miscellaneous course related information
and activities. |
||
|
||
Supplementary materials: Handouts in
class or web postings of current events and issues affecting information
security and risk analysis/assessment.
Some books that may be helpful to the course will be posted on
Blackboard. |
||
|
||
In class activity and participation: Students are encouraged to bring to class articles on current newsworthy events in information security, risk analysis/assessment and management and related news to share with the class. Students are welcome to inform the class on these events and their significance to operating system and architecture. |
Students are strongly encouraged to download
relevant posted lessons from Blackboard and review them. They are encouraged
to ask questions about these lessons in class. Effort may be made to present some lessons using the
storytelling format supported with subsequent discussion and elaboration on
the central themes of the respective lessons. The key elements of a story are the following:
causality, conflict, complication, and character. |
Collaborative teams are designed to function outside
of the classroom. Collaborative team activities will be reinforced inside the
class during the lessons. Teams are encouraged to function cohesively and to
participate in all class activities.
The following excerpts about collaborative learning
are from research documents:
·
In the university
environment, educational success and
social adjustments depend primarily on
the availability and effectiveness of developmental academic support systems.
·
Most organized learning occurs in some kind of team team characteristics
and team processes significantly contribute to success or failure in the
classroom and directly [affect] the quality and quantity of learning within the
team.
·
Team work invariably produces tensions that are
normally absent, unnoticed, or suppressed in traditional classes. Students bring with them a variety of
personality types, cognitive styles, expectations about their own role in the
classroom and their relationship to the teacher, peers, and the subject matter
of the course.
·
Collaborative
learning involves both management and decision-making skills to choose among
competing needs. The problems
encountered with collaboration have management, political, competence, and
ethical dimensions
·
The two key underlying principles of the collaborative
pedagogy are that active student involvement is a more powerful learning tool
than the passive attendance and that students working in teams can make for
more effective learning than students acting alone. The favorable
outcomes of collaborative learning include greater conceptual understanding, a
heightened ability to apply concepts, and improved attendance. Moreover, students become responsible for their own learning is likely to
increase their skills for coping with ambiguity, uncertainty, and continuous
change, all of which are characteristics of contemporary organizations.
Who creates a new activity in the face of risk and
uncertainty for the purpose of achieving success and growth by identifying
opportunities and putting together the required resources to benefit from them?
Creativity is
the ability to develop new ideas and
to discover new ways to of looking at problems and opportunities
Innovation is
the ability to apply creative solutions to those problems and opportunities to
enhance or to enrich people’s lives.
Each team may be viewed as a small business that is
seeking creative and innovative ways to maximize its product, academic
outcomes or average team grade. A satisfactory product is the break-even team
average grade of 85%. Teams getting average grades of above 85% are
profitable enterprises. |